Some embodiments are directed to dynamic display of objects within a virtual world, and in particular, applies in virtual worlds wherein the number of objects is high and their information (like actual locations) should be constantly updated.
Virtual worlds are environments simulated by computers, wherein users can create personal avatars and interact with each other and with the environments.
These worlds may be designed for games, but also for other purposes. For instance, the users of such virtual environments may simply enjoy the experience of being immersed in a new virtual world and/or to interact with other users, create things, explore or to pursue other personal goals.
The users interact with the simulated virtual world through man-machine interfaces, like computer or virtual-reality systems, whereas the simulating computers may be located in remote locations. In addition, the users may be located in different premises, so that the information regarding the virtual world should be transmitted through telecommunication networks.
As the avatar may move within the virtual world, the perceived environment should be constantly updated. What's more, as the avatars may see each other in the virtual world, and as they may move constantly, the current location of each avatar should be transmitted to each other avatar, so as to have them update the display of the environment.
In addition, in order to make the users have a good experience of the interactions with the virtual world, the updates should be frequent enough.
In consequence, the amount of information to be transmitted throughout the telecommunication networks increases dramatically when the number of moving objects (avatars . . . ) within the virtual world is important.
In addition, in order to make the users have a good experience of the interactions with the virtual world, the updates should be frequent enough, for instance 10 times per seconds. A lower figure may give the feeling of freezing objects, jerky movements or even inconsistencies in the relative locations of objects.
In other words, if K is the number of avatars, the broadcasting of updates to users is a K2 complexity problem to be addressed at, for instances, a 10 times/seconds frequency. It is clear that such a problem does not scale when the number of users increase, especially if each user can manage several moving objects.
Several solutions have been proposed to address this problem of scalability.
In many cases, the number of objects and/or users are limited. When new users want to join the virtual world, a new instance of the virtual world is created. Each user then belongs to a particular instance of the world, and the information are transmitted independently between users of each instance. Such a solution allows to limit the number of objects to manage and, consequently, the amount of information to be broadcast among users. However, it isolates users within a particular instance from other users in other instances, which is a strong limitation to possible use cases of such virtual worlds.